小编典典

为什么 OAuth v2 既有访问令牌又有刷新令牌?

all

OAuth 2.0 协议草案的第 4.2
节表明,授权服务器可以返回一个access_token(用于对资源进行身份验证)和一个refresh_token,它纯粹用于创建一个新的access_token

https://www.rfc-editor.org/rfc/rfc6749#section-4.2

为什么两者都有?为什么不只做access_token最后一个只要 therefresh_token并且没有 a refresh_token


阅读 187

收藏
2022-03-02

共1个答案

小编典典

刷新令牌的想法是,如果访问令牌被泄露,因为它是短暂的,攻击者有一个有限的窗口来滥用它。

刷新令牌,如果被泄露,将毫无用处,因为攻击者除了刷新令牌之外还需要客户端 ID 和密码才能获得访问令牌。

话虽如此 ,因为对授权服务器和资源服务器的每次调用都是通过 SSL 完成的——包括当他们请求访问/刷新令牌时的原始客户端 id
和秘密——我不确定访问令牌是怎样的。比长期刷新令牌和客户端ID/秘密组合更容易妥协”。

这当然与您不控制授权和资源服务器的实现不同。

这是一个讨论刷新令牌使用的好帖子:OAuth Archives

上面的引用,谈论刷新令牌的安全目的:

刷新令牌…减轻长期 access_token 泄漏的风险(在不安全的资源服务器上的日志文件中查询参数、测试版或编码不佳的资源服务器应用程序、将
access_token 放在非 https 站点上的 JS SDK 客户端饼干等)

2022-03-02